#!/usr/bin/enr/python3
# -*- coding: utf-8 -*-
# -------------------------------
# @Author : hurong
# @File : 1105_p03面向对象02.py
# @Time : 2023/11/16 23:32
# -------------------------------

class MyString():
    # __new__()，一般不会重写这个方法，只是用来申请内存空间
    # def __new__():
    #     self = allow()
    #     __init__(self)

    def __init__(self, name):
        self.name = name


    def upper(self):
        print("upper" + self.name)
        result = "a" + "b"
        result = result.upper()
        return result


    def lower(self):
        print("lower" + self.name)


    def __repr__(self):
        return  f"My Name Is {self.name}"
    # 魔法属性，魔法方法，等同于方法__repr__
    # def __str__(self):
    #     # 必须返回一个字符串数据
    #     return f"My name is {self.name}"
    """
    def __str__(self):
        return self.__repr__
    """

ms1 = MyString("Tom")
ms2 = MyString("jack")

print(ms1)  # 原因：__str__ 魔法属性方法，定义好之后会按照该格式进行输出
print(ms2)
# 打印结果：
# My name is Tom
# My name is jack

# 返回结果后进行再次进行结果处理
print(ms1.upper().title())
# 执行结果
# upperTom
# Ab